package uiMain;

import gestorbienraizok.usuarios.Persona;
import java.util.Scanner;
import static uiMain.bienRaizOk.entrada;

public class OpcionEliminarOpcion extends OpcionDeMenu {

    private String nombreParaMostrar = " Eliminar opciones de menú a un usuario";

    @Override
    public void ejecutar() {

        System.out.print("Ingrese la cédula del usuario al que le desea eliminar una opción: ");
        entrada = new Scanner(System.in);
        long cedulaEstaPersona = entrada.nextLong();
        Persona estaPersona = Persona.buscarPersona(cedulaEstaPersona);
        while (estaPersona == null) {
            System.out.print("No se encontró ninguna persona con cédula " + cedulaEstaPersona + ", intente nuevamente: ");
            cedulaEstaPersona = entrada.nextLong();
            estaPersona = Persona.buscarPersona(cedulaEstaPersona);
        }
        MenuDeConsola menuAModificar = estaPersona.getMenuDeConsola();
        boolean eliminarMas = true;
        do {

            if (menuAModificar.getNumeroDeOpciones() > 2) {
                System.out.print("El " + estaPersona.tipoDePersona() + " " + estaPersona.getNombre() + " tiene las siguientes opciones en el momento:\n\n");
                menuAModificar.mostrarMenuSinCerrarSesionYSalir();
                System.out.print("\nSeleccione la opción que desea eliminarle: ");
                byte seleccion = entrada.nextByte();
                while (seleccion < 1 || seleccion > menuAModificar.getNumeroDeOpciones() - 2) {
                    System.out.print("Seleccione una opción válida (1-" + (menuAModificar.getNumeroDeOpciones() - 2) + "): ");
                    seleccion = entrada.nextByte();
                }
                menuAModificar.eliminarOpcion(seleccion);
                System.out.println("La opción se eliminó de manera exitosa");
                eliminarMas = verificarCaracteristica(("¿Desea eliminarle otra opción al " + estaPersona.tipoDePersona() + " " + estaPersona.getNombre() + "? (S/N): "), "s", "n");
            } else {
                System.out.println("No es posible eliminarle ninguna opción al " + estaPersona.tipoDePersona() + " " + estaPersona.getNombre() + ". Ya se le han eliminado todas");
            }
        } while (eliminarMas);
    }

    @Override
    public String toString() {
        return nombreParaMostrar;
    }

    @Override
    public String toStringParaMostrarElNivel() {
        return nombreParaMostrar.trim().concat("...................................................................").substring(0, 67) + "Administrador del sistema";
    }

}
